package cn.bearspark.tag.rpc;

import cn.bearspark.common.dto.Page;
import cn.bearspark.tag.dto.TagDTO;

import java.util.List;
import java.util.Map;

/**
 * 标签模块服务的远程调用接口 TODO 需要在需要时调用增加标签浏览量和讨论量的接口
 *
 * @author f
 */
public interface TagRpc {

    /**
     * 条件分页获取标签信息
     *
     * @param keyword  关键字
     * @param pageNum  标签的页数
     * @param pageSize 标签的条数
     * @return 标签的信息
     */
    Page<TagDTO> pageQuery(String keyword, int pageNum, int pageSize);

    /**
     * 获取最近的 9 个标签的集合
     *
     * @return 最近的 9 个标签的集合
     */
    List<TagDTO> getTop9RecentTag();

    /**
     * 获取指定标签 id 集合对应的标签内容
     *
     * @param tagIdList 指定标签的 id 集合
     * @return 返回一个 Map，key：标签的 id，value：标签的内容
     */
    Map<Long, String> getContentMap(List<Long> tagIdList);

    /**
     * 获取指定标签 id 对应的标签内容
     *
     * @param tagId 指定标签的 id
     * @return 指定标签 id 对应的标签内容
     */
    String getContent(long tagId);

    /**
     * 增加指定标签的浏览量
     *
     * @param tagId 指定的标签 id
     */
    void incrViewNum(long tagId);

    /**
     * 增加指定标签的讨论量
     *
     * @param tagId 指定的标签 id
     */
    void incrDiscussNum(long tagId);
}
